package com.ruoyi.project.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.FinBaseEntity;
import com.ruoyi.common.domainenum.FinSubjectDirectionType;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 凭证项对象 fin_record_voucher_item
 * 
 * @author abel
 * @date 2024-10-15
 */
public class FinRecordVoucherItem extends FinBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 凭证id */
    @Excel(name = "凭证id")
    private Long recordId;

    /** 凭证号 */
    @Excel(name = "凭证号")
    private Integer recordNo;

    /** 凭证时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @Excel(name = "凭证时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date recordDate;

    /** 借贷方向
     *  记录科目的借贷方向
     * */
    @Excel(name = "借贷方向")
    private FinSubjectDirectionType directionType;

    /** 科目id */
    @Excel(name = "科目id")
    private Long subjectId;

    /** 科目代码 */
    @Excel(name = "科目代码")
    private String subjectCode;

    /** 科目 */
    @Excel(name = "科目")
    private String subjectName;

    @Excel(name = "上级科目id")
    private Long subjectParentId;

    /** 科目代码 */
    @Excel(name = "上级科目代码")
    private String subjectParentCode;

    /** 科目 */
    @Excel(name = "上级科目")
    private String subjectParentName;

    /** 摘要 */
    @Excel(name = "摘要")
    private String description;

    /** 顺序 */
    @Excel(name = "顺序")
    private String recordSeq;

    /** 借方金额 */
    @Excel(name = "借方金额")
    private BigDecimal jieAmount;

    /** 贷方金额 */
    @Excel(name = "贷方金额")
    private BigDecimal daiAmount;

    /** 年份 */
    @Excel(name = "年份")
    private Integer yearValue;

    /** 月份 */
    @Excel(name = "月份")
    private Integer monthValue;

    /** 年份和月份 */
    @Excel(name = "年份和月份")
    private String yearAndMonth;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public Long getSubjectParentId() {
        return subjectParentId;
    }

    public void setSubjectParentId(Long subjectParentId) {
        this.subjectParentId = subjectParentId;
    }

    public String getSubjectParentCode() {
        return subjectParentCode;
    }

    public void setSubjectParentCode(String subjectParentCode) {
        this.subjectParentCode = subjectParentCode;
    }

    public String getSubjectParentName() {
        return subjectParentName;
    }

    public void setSubjectParentName(String subjectParentName) {
        this.subjectParentName = subjectParentName;
    }

    public void setRecordId(Long recordId)
    {
        this.recordId = recordId;
    }

    public Long getRecordId() 
    {
        return recordId;
    }

    public Integer getRecordNo() {
        return recordNo;
    }

    public void setRecordNo(Integer recordNo) {
        this.recordNo = recordNo;
    }

    public void setRecordDate(Date recordDate)
    {
        this.recordDate = recordDate;
    }

    public Date getRecordDate() 
    {
        return recordDate;
    }

    public FinSubjectDirectionType getDirectionType() {
        return directionType;
    }

    public void setDirectionType(FinSubjectDirectionType directionType) {
        this.directionType = directionType;
    }

    public void setSubjectId(Long subjectId)
    {
        this.subjectId = subjectId;
    }

    public Long getSubjectId() 
    {
        return subjectId;
    }
    public void setSubjectCode(String subjectCode) 
    {
        this.subjectCode = subjectCode;
    }

    public String getSubjectCode() 
    {
        return subjectCode;
    }
    public void setSubjectName(String subjectName) 
    {
        this.subjectName = subjectName;
    }

    public String getSubjectName() 
    {
        return subjectName;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public String getRecordSeq() {
        return recordSeq;
    }

    public void setRecordSeq(String recordSeq) {
        this.recordSeq = recordSeq;
    }

    public void setJieAmount(BigDecimal jieAmount)
    {
        this.jieAmount = jieAmount;
    }

    public BigDecimal getJieAmount() 
    {
        return jieAmount;
    }
    public void setDaiAmount(BigDecimal daiAmount) 
    {
        this.daiAmount = daiAmount;
    }

    public BigDecimal getDaiAmount() 
    {
        return daiAmount;
    }

    public Integer getYearValue() {
        return yearValue;
    }

    public void setYearValue(Integer yearValue) {
        this.yearValue = yearValue;
    }

    public Integer getMonthValue() {
        return monthValue;
    }

    public void setMonthValue(Integer monthValue) {
        this.monthValue = monthValue;
    }

    public void setYearAndMonth(String yearAndMonth)
    {
        this.yearAndMonth = yearAndMonth;
    }

    public String getYearAndMonth() 
    {
        return yearAndMonth;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("recordId", getRecordId())
            .append("recordNo", getRecordNo())
            .append("recordDate", getRecordDate())
            .append("directionType", getDirectionType())
            .append("subjectId", getSubjectId())
            .append("subjectCode", getSubjectCode())
            .append("subjectName", getSubjectName())
            .append("description", getDescription())
            .append("recordSeq", getRecordSeq())
            .append("jieAmount", getJieAmount())
            .append("daiAmount", getDaiAmount())
            .append("yearValue", getYearValue())
            .append("monthValue", getMonthValue())
            .append("yearAndMonth", getYearAndMonth())
            .append("packageId", getPackageId())
            .append("createId", getCreateId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateId", getUpdateId())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
